package 刷题;
//合并两个有序数组

public class Solution88 {
    public void merge(int[] nums1,int m,int[] nums2,int n){
        int i = 0,j = 0;//分别用来描述nums1和nums2数组得指针
        int[] res = new int[m + n];
        int k = 0;//用来描述res数组得指针
        while(k < m+n){
            //直到把res填满为止，跳出while循环
            while(i < m && (j == n || nums1[i] < nums2[j])){
                //(j == n),当nums2中的元素全部填到res中时，此时j==n,便不需要判断nums[1]和nums[2]的大小关系
                res[k++] = nums1[i++];
            }
            while(j<n && (i == m || nums1[i] >= nums2[j])){
                res[k++] = nums2[j++];
            }
        }
        for (int l = 0; l < m+n; l++) {
            nums1[i] = res[i];
        }
    }
}
